home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #1
/
Amiga Plus 1995 #1.iso
/
fish-disketten
/
fish_691-700
/
d695
/
ppdata
/
src
/
prefs.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-12-13
|
2KB
|
98 lines
/*
* prefs.c
*
* Routines for loading and saving ppdata preferences.
*
* MWS 3/92.
*/
#include <exec/types.h>
#include <intuition/intuition.h>
#include <libraries/dos.h>
#include <libraries/ppbase.h>
#include <proto/dos.h>
#include <proto/intuition.h>
#define PREFS_C
#include "prefs.h"
#include "display.h"
#include "messages.h"
static void UpdateMenus(void); /* prototype */
struct PPDataPrefs prefs; /* this is global variable containing prefs */
static void UpdateMenus() /* update menus to reflect preferences */
{
struct MenuItem *item;
item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, COLOR, prefs.color));
item->Flags |= CHECKED;
item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, EFFICIENCY, prefs.efficiency));
item->Flags |= CHECKED;
item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, SPEEDUP, prefs.speedup));
item->Flags |= CHECKED;
item = ItemAddress(mainmenu, FULLMENUNUM(CONTROL, prefs.control, 0));
item->Flags |= CHECKED;
if (prefs.suffix)
{
item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, SUFFIX, 0));
item->Flags |= CHECKED;
}
if (prefs.overwrite)
{
item = ItemAddress(mainmenu, FULLMENUNUM(PREFS, OVERWRITE, 0));
item->Flags |= CHECKED;
}
}
void LoadPrefs() /* try to load prefs; if failure, use defaults */
{ /* update menus to reflect preferences */
BPTR prefshandle;
BOOL usedefaults = FALSE;
if (prefshandle = Open(PREFS_NAME, MODE_OLDFILE))
{
if (Read(prefshandle, &prefs, PREFS_SIZE) != PREFS_SIZE)
{
Message("Error in preference file " PREFS_NAME "\nUsing defaults");
usedefaults = TRUE; /* invalid preference file */
}
Close(prefshandle);
}
else usedefaults = TRUE;
if (usedefaults) /* no prefs file or I/O error */
{
prefs.color = DECR_POINTER;
prefs.efficiency = CRUN_GOOD;
prefs.speedup = SPEEDUP_BUFFMEDIUM;
prefs.suffix = 0L;
prefs.overwrite = 1L;
prefs.control = QUERY;
}
UpdateMenus();
}
void SavePrefs() /* save current preferences; returns TRUE on success */
{
BPTR prefshandle;
if (prefshandle = Open(PREFS_NAME, MODE_NEWFILE))
{
if (Write(prefshandle, &prefs, PREFS_SIZE) != PREFS_SIZE)
Message("Can't write to file " PREFS_NAME);
Close(prefshandle);
}
else Message("Can't open file " PREFS_NAME);
}